1. Technical Field
This disclosure relates to an external device interface engine. In particular, this disclosure relates to an external interface engine for digital signal processors or other types of processors.
2. Related Art
Processors, such as digital signal processors (“DSPs”), communicate with external devices, including other processors and/or memories. Some processors use state machines to facilitate the communication with an external device. These processors may require one state machine for each type of external device with which the processor communicates. Additionally, a separate state machine may be required for each operation that each external device performs.
The proliferation of state machines adds significant time and monetary costs to the design and fabrication of processors. Furthermore, because the state machines and processors often operate at different data rates, wait states must be added to a processor to match the data rate of the state machines. The wait states reduce the processor's efficiency by preventing the processor from proceeding with its operations until it receives a data ready response from the state machine.
Additionally, when a processor, such as a DSP, communicates with a serial device it sends and receives data on a bit-by-bit basis. Some systems directly connect an output of the processor to a serial device. These systems reduce the processor's efficiency since the processor may need to match the rate of data transfer to that of the serial device as well as synchronize the timing of the data rate transfer to the serial device. Other systems may implement an interface between the processor and a serial device. In these systems, the processor must synchronize the timing of the data transfer to the serial interface. Failure to synchronize the timing can result in multiple channels creating a temporal mismatch with respect to one another which may lead to the erroneous processing of the data by the processor and/or the serial device.
Therefore, there is a need for an improved external device interface engine, such as an external memory interface engine or a serial communication input output interface engine.